/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package analisador.classesDeIdentificadores;

/**
 *
 * @author Augusto
 */
public class SimboloConstante extends Simbolo {
    protected String tipoConstante;
    
    protected int valorConstanteInteiro;
    protected double valorConstanteReal;
    protected String valorConstanteLiteral;
    protected boolean valorConstanteBoolean;

    public SimboloConstante( String nome, String categoria )
    {
        super(nome, categoria );
    }
    
    public boolean isValorConstanteBoolean() {
        return valorConstanteBoolean;
    }

    public void setValorConstanteBoolean(boolean valorConstanteBoolean) {
        this.valorConstanteBoolean = valorConstanteBoolean;
    }

    public int getValorConstanteInteiro() {
        return valorConstanteInteiro;
    }

    public void setValorConstanteInteiro(int valorConstanteInteiro) {
        this.valorConstanteInteiro = valorConstanteInteiro;
    }

    public double getValorConstanteReal() {
        return valorConstanteReal;
    }

    public void setValorConstanteReal(double valorConstanteReal) {
        this.valorConstanteReal = valorConstanteReal;
    }

    public String getValorConstanteLiteral() {
        return valorConstanteLiteral;
    }

    public void setValorConstanteLiteral(String valorConstanteLiteral) {
        this.valorConstanteLiteral = valorConstanteLiteral;
    }
    
   
    
    public void setTipoConstante( String tipo )
    {
        this.tipoConstante = tipo;
    }
    
    public String getTipoConstante()
    {
        return this.tipoConstante;
    }
    
    public String printValorConstante()
    {
        if( this.tipoConstante != null )
        {
            if( this.tipoConstante.equalsIgnoreCase("inteiro") )
            {
                return " " + this.valorConstanteInteiro;
            }
            else if( this.tipoConstante.equalsIgnoreCase("real" ))
            {
                 return " Valor da Constante: " + this.valorConstanteReal;
            }
            else if( this.tipoConstante.equalsIgnoreCase("literal" ))
            {
                  return " Valor da Constante: " + this.valorConstanteLiteral;
            }
            else if( this.tipoConstante.equalsIgnoreCase("verdadeiro" ) || this.tipoConstante.equalsIgnoreCase("falso" ))
            {
                  return " Valor da Constante: " + this.valorConstanteBoolean;
            }
            return "VAZIA";
        }
        return "VAZIA";
        /*
        if( this.tipoConstante != "" )
        {
            switch( this.tipoConstante )
            {
                case "inteiro":
                    System.out.println("Valor da Constante: " + this.valorConstanteInteiro);
                    break;
                case "real":
                    System.out.println("Valor da Constante: " + this.valorConstanteReal);
                    break;
                case "verdadeiro":
                    System.out.println("Valor da Constante: " + this.valorConstanteBoolean);
                    break;
                case "falso":
                    System.out.println("Valor da Constante: " + this.valorConstanteBoolean);
                    break;
                case "literal":
                    System.out.println("Valor da Constante: " + this.valorConstanteLiteral);
                    break;
            }
        }
        * */
       
    }
    
    @Override
    public void print()
    {
        System.out.println( this.nome +"    -   "+this.categoria+"    -   "+this.tipoConstante+" = "+this.printValorConstante() );
        
    }
    
    
}
